﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Neotic.DataAccess.Sql
{
    /// <summary>
    /// Permet d'utiliser CustomSqlColumn de manière simplifiée à la manière de String.Format
    /// </summary>
    public class FormattedColumn : CustomSqlColumn
    {
        protected string _format;
        
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="format"></param>
        /// <param name="columns"></param>
        public FormattedColumn(string format, Column[] columns)
        {
            _format = format;
            _columns = columns;
        }

        //Redéfinitions de la propriété FullName pour la construire à partir d'un String.Format
        public override string FullName
        {
            get {
                // array de col.FullName
                string[] cols = _columns.Select( c => c.FullName ).ToArray();

                return string.Format(_format, cols);
            }
        }
    }
}
